# Invoice

Invoice is a simple but "extensible" command-line tool that takes a
number of template parameters and a list of billables and generates an
invoice, in LaTeX format, with those line-item billables and a total
invoice amount.  It will automatically generate incremental invoice
numbers.  It does not do any other fancy invoice or time tracking.

## Configuration

All template parameters can be configured with default values in the
`~/.invoicerc` file.  These must be specified as a Scheme list of
pairs (aka "alist").  For example:

```
'(("name"    . "John Doe")
  ("address" . "1234 Curvey Rd")
  ("phone"   . "(123) 456-7890")
  ("email"   . "jdoe@example.com")
  ("bill-to" . "ACME Company")
  ("rate"    . 100.00))
```

These and other template parameters can be given values with options
when invoking `invoice`.  Values given in this way override any
default values specified in `~/.invoicerc`.

## Example

```
$ path="invoice-`date +%Y%m%d`.tex"
$ invoice --bill-for="Frobnicating whodizzles" \
  -D "Management of bazzles" -H 2 \
  -D "Fizzing the fumbith" -H 1.5 \
  -D "Toohawth accounting" -H 3 >$path
$ pdflatex $path
```

## Why

I do a few odd jobs for people here and there, and `invoice` lets me
create an invoice for those jobs quick and easy.  I know exactly where
those invoices are stored and can customize them if I want to before
running them through LaTeX.